home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Ken Long / NewShuttle-p-c / Straight C Port < prev   
Encoding:
Text File  |  1994-12-04  |  14.1 KB  |  833 lines  |  [TEXT/KAHL]

  1. //• Wire frame shuttle viewer
  2. //• by Eddy Vasile 70451,3333 compuserve
  3. //• Plot points collected from a fortran bbs in 86
  4. //• To compile this program:
  5. //• 1st: if this file (shuttle.p) is not in a sit file along with a resource file, then:
  6. //• create a WIND resource shuttle.pi.rsrc (use option p for pi)
  7. //• Make sure that the size of the window is the largest possible by
  8. //• stretching it as far as resedit will allow it. Change the resource id to 400
  9. //• and give it an adequate name like shuttle viewer. Make sure you click on purgeable
  10. //• 2nd: create a project shuttle.pi and then add shuttle.p (this program) at the bottom
  11. //• click on run options and select 'uses resource file.' Select the resource
  12. //• file created  above or included in the sit file.
  13.  
  14. //• ShuttleViewer.c
  15.  
  16. #include <math.h>
  17. #include <sane.h>
  18. #include <stdlib.h>
  19.  
  20. enum {
  21.     maxa = 300,
  22.     maxv = 124,
  23.     maxe = 259,
  24.     r1      = 400,
  25.     maxd = 631
  26. };
  27.  
  28. short    oxangle, oyangle, ozangle, Pc, Ec;
  29.  
  30. double    CH, SH,
  31.         CP, SP,
  32.         CB, SB,
  33.         XV, YV, ZV,
  34.         X, Y, Z,
  35.         X3, Y3, Z3,
  36.         AM, BM, CM, DM, EM, FM, GM, HM, IM,
  37.         D, P, B, H,
  38.         U,
  39.         Vc,
  40.         U1, V1;
  41.  
  42. double        V [maxa] [4];
  43. double        E [maxa];
  44. double        data [maxd];
  45. WindowPtr    w;
  46. long        ticks;
  47.  
  48. void setdataarray ()
  49. {
  50.     data[1] = 0;
  51.     data[2] = -2;
  52.     data[3] = 46;
  53.     data[4] = 2;
  54.     data[5] = -3;
  55.     data[6] = 46;
  56.     data[7] = 2;
  57.     data[8] = -5;
  58.     data[9] = 46;
  59.     data[10] = 2;
  60.     data[11] = -7;
  61.     data[12] = 46;
  62.     data[13] = 0;
  63.     data[14] = -7;
  64.     data[15] = 46;
  65.     data[16] = -2;
  66.     data[17] = -7;
  67.     data[18] = 46;
  68.     data[19] = -2;
  69.     data[20] = -5;
  70.     data[21] = 46;
  71.     data[22] = -2;
  72.     data[23] = -3;
  73.     data[24] = 46;
  74.     data[25] = 0;
  75.     data[26] = -1;
  76.     data[27] = 43;
  77.     data[28] = 3;
  78.     data[29] = -2;
  79.     data[30] = 43;
  80.     data[31] = 4;
  81.     data[32] = -5;
  82.     data[33] = 43;
  83.     data[34] = 3;
  84.     data[35] = -7;
  85.     data[36] = 43;
  86.     data[37] = 0;
  87.     data[38] = -8;
  88.     data[39] = 43;
  89.     data[40] = -3;
  90.     data[41] = -7;
  91.     data[42] = 43;
  92.     data[43] = -4;
  93.     data[44] = -5;
  94.     data[45] = 43;
  95.     data[46] = -3;
  96.     data[47] = -2;
  97.     data[48] = 43;
  98.     data[49] = 0;
  99.     data[50] = 2;
  100.     data[51] = 38;
  101.     data[52] = 5;
  102.     data[53] = 0;
  103.     data[54] = 38;
  104.     data[55] = 6;
  105.     data[56] = -4;
  106.     data[57] = 38;
  107.     data[58] = 4;
  108.     data[59] = -8;
  109.     data[60] = 38;
  110.     data[61] = 0;
  111.     data[62] = -9;
  112.     data[63] = 38;
  113.     data[64] = -4;
  114.     data[65] = -8;
  115.     data[66] = 38;
  116.     data[67] = -6;
  117.     data[68] = -4;
  118.     data[69] = 38;
  119.     data[70] = -5;
  120.     data[71] = 0;
  121.     data[72] = 38;
  122.     data[73] = 0;
  123.     data[74] = 4;
  124.     data[75] = 33;
  125.     data[76] = 5;
  126.     data[77] = 1;
  127.     data[78] = 33;
  128.     data[79] = 6;
  129.     data[80] = -5;
  130.     data[81] = 33;
  131.     data[82] = 4;
  132.     data[83] = -9;
  133.     data[84] = 33;
  134.     data[85] = 0;
  135.     data[86] = -10;
  136.     data[87] = 33;
  137.     data[88] = -4;
  138.     data[89] = -9;
  139.     data[90] = 33;
  140.     data[91] = -6;
  141.     data[92] = -5;
  142.     data[93] = 33;
  143.     data[94] = -5;
  144.     data[95] = 1;
  145.     data[96] = 33;
  146.     data[97] = 0;
  147.     data[98] = 8;
  148.     data[99] = 26;
  149.     data[100] = 4;
  150.     data[101] = 7;
  151.     data[102] = 26;
  152.     data[103] = 8;
  153.     data[104] = 2;
  154.     data[105] = 26;
  155.     data[106] = 8;
  156.     data[107] = -7;
  157.     data[108] = 26;
  158.     data[109] = 0;
  159.     data[110] = -10;
  160.     data[111] = 26;
  161.     data[112] = -8;
  162.     data[113] = -7;
  163.     data[114] = 26;
  164.     data[115] = -8;
  165.     data[116] = 2;
  166.     data[117] = 26;
  167.     data[118] = -4;
  168.     data[119] = 7;
  169.     data[120] = 26;
  170.     data[121] = 0;
  171.     data[122] = 8;
  172.     data[123] = 22;
  173.     data[124] = 4;
  174.     data[125] = 8;
  175.     data[126] = 22;
  176.     data[127] = 8;
  177.     data[128] = 3;
  178.     data[129] = 22;
  179.     data[130] = 8;
  180.     data[131] = -8;
  181.     data[132] = 22;
  182.     data[133] = 0;
  183.     data[134] = -10;
  184.     data[135] = 22;
  185.     data[136] = -8;
  186.     data[137] = -8;
  187.     data[138] = 22;
  188.     data[139] = -8;
  189.     data[140] = 3;
  190.     data[141] = 22;
  191.     data[142] = -4;
  192.     data[143] = 8;
  193.     data[144] = 22;
  194.     data[145] = 0;
  195.     data[146] = 8;
  196.     data[147] = 14;
  197.     data[148] = 5;
  198.     data[149] = 7;
  199.     data[150] = 14;
  200.     data[151] = 8;
  201.     data[152] = 4;
  202.     data[153] = 14;
  203.     data[154] = 8;
  204.     data[155] = -9;
  205.     data[156] = 14;
  206.     data[157] = 0;
  207.     data[158] = -10;
  208.     data[159] = 14;
  209.     data[160] = -8;
  210.     data[161] = -9;
  211.     data[162] = 14;
  212.     data[163] = -8;
  213.     data[164] = 4;
  214.     data[165] = 14;
  215.     data[166] = -5;
  216.     data[167] = 7;
  217.     data[168] = 14;
  218.     data[169] = 0;
  219.     data[170] = 8;
  220.     data[171] = 4;
  221.     data[172] = 5;
  222.     data[173] = 7;
  223.     data[174] = 4;
  224.     data[175] = 8;
  225.     data[176] = 4;
  226.     data[177] = 4;
  227.     data[178] = 8;
  228.     data[179] = -9;
  229.     data[180] = 4;
  230.     data[181] = 0;
  231.     data[182] = -10;
  232.     data[183] = 4;
  233.     data[184] = -8;
  234.     data[185] = -9;
  235.     data[186] = 4;
  236.     data[187] = -8;
  237.     data[188] = 4;
  238.     data[189] = 4;
  239.     data[190] = -5;
  240.     data[191] = 7;
  241.     data[192] = 4;
  242.     data[193] = 0;
  243.     data[194] = 8;
  244.     data[195] = -12;
  245.     data[196] = 5;
  246.     data[197] = 7;
  247.     data[198] = -12;
  248.     data[199] = 8;
  249.     data[200] = 4;
  250.     data[201] = -12;
  251.     data[202] = 8;
  252.     data[203] = -9;
  253.     data[204] = -12;
  254.     data[205] = 0;
  255.     data[206] = -10;
  256.     data[207] = -12;
  257.     data[208] = -8;
  258.     data[209] = -9;
  259.     data[210] = -12;
  260.     data[211] = -8;
  261.     data[212] = 4;
  262.     data[213] = -12;
  263.     data[214] = -5;
  264.     data[215] = 7;
  265.     data[216] = -12;
  266.     data[217] = 0;
  267.     data[218] = 8;
  268.     data[219] = -27;
  269.     data[220] = 5;
  270.     data[221] = 7;
  271.     data[222] = -27;
  272.     data[223] = 8;
  273.     data[224] = 4;
  274.     data[225] = -27;
  275.     data[226] = 8;
  276.     data[227] = -9;
  277.     data[228] = -27;
  278.     data[229] = 0;
  279.     data[230] = -10;
  280.     data[231] = -27;
  281.     data[232] = -8;
  282.     data[233] = -9;
  283.     data[234] = -27;
  284.     data[235] = -8;
  285.     data[236] = 4;
  286.     data[237] = -27;
  287.     data[238] = -5;
  288.     data[239] = 7;
  289.     data[240] = -27;
  290.     data[241] = 0;
  291.     data[242] = 8;
  292.     data[243] = -36;
  293.     data[244] = 5;
  294.     data[245] = 7;
  295.     data[246] = -36;
  296.     data[247] = 8;
  297.     data[248] = 4;
  298.     data[249] = -36;
  299.     data[250] = 8;
  300.     data[251] = -9;
  301.     data[252] = -36;
  302.     data[253] = 0;
  303.     data[254] = -10;
  304.     data[255] = -36;
  305.     data[256] = -8;
  306.     data[257] = -9;
  307.     data[258] = -36;
  308.     data[259] = -8;
  309.     data[260] = 4;
  310.     data[261] = -36;
  311.     data[262] = -5;
  312.     data[263] = 7;
  313.     data[264] = -36;
  314.     data[265] = 0;
  315.     data[266] = 9;
  316.     data[267] = -43;
  317.     data[268] = 2;
  318.     data[269] = 9;
  319.     data[270] = -43;
  320.     data[271] = 9;
  321.     data[272] = 2;
  322.     data[273] = -43;
  323.     data[274] = 9;
  324.     data[275] = -10;
  325.     data[276] = -43;
  326.     data[277] = 0;
  327.     data[278] = -11;
  328.     data[279] = -43;
  329.     data[280] = -9;
  330.     data[281] = -10;
  331.     data[282] = -43;
  332.     data[283] = -9;
  333.     data[284] = 2;
  334.     data[285] = -43;
  335.     data[286] = -2;
  336.     data[287] = 9;
  337.     data[288] = -43;
  338.     data[289] = 0;
  339.     data[290] = 10;
  340.     data[291] = -48;
  341.     data[292] = 2;
  342.     data[293] = 9;
  343.     data[294] = -48;
  344.     data[295] = 9;
  345.     data[296] = 2;
  346.     data[297] = -48;
  347.     data[298] = 10;
  348.     data[299] = -10;
  349.     data[300] = -48;
  350.     data[301] = 0;
  351.     data[302] = -10;
  352.     data[303] = -48;
  353.     data[304] = -10;
  354.     data[305] = -10;
  355.     data[306] = -48;
  356.     data[307] = -9;
  357.     data[308] = 2;
  358.     data[309] = -48;
  359.     data[310] = -2;
  360.     data[311] = 9;
  361.     data[312] = -48;
  362.     data[313] = 9;
  363.     data[314] = -9;
  364.     data[315] = 21;
  365.     data[316] = 15;
  366.     data[317] = -9;
  367.     data[318] = -16;
  368.     data[319] = 35;
  369.     data[320] = -10;
  370.     data[321] = -36;
  371.     data[322] = 35;
  372.     data[323] = -10;
  373.     data[324] = -40;
  374.     data[325] = -9;
  375.     data[326] = -9;
  376.     data[327] = 21;
  377.     data[328] = -15;
  378.     data[329] = -9;
  379.     data[330] = -16;
  380.     data[331] = -35;
  381.     data[332] = -10;
  382.     data[333] = -36;
  383.     data[334] = -35;
  384.     data[335] = -10;
  385.     data[336] = -40;
  386.     data[337] = 0;
  387.     data[338] = 13;
  388.     data[339] = -37;
  389.     data[340] = 0;
  390.     data[341] = 33;
  391.     data[342] = -60;
  392.     data[343] = 0;
  393.     data[344] = 33;
  394.     data[345] = -69;
  395.     data[346] = 0;
  396.     data[347] = 14;
  397.     data[348] = -60;
  398.     data[349] = 6;
  399.     data[350] = 11;
  400.     data[351] = -43;
  401.     data[352] = 6;
  402.     data[353] = 11;
  403.     data[354] = -48;
  404.     data[355] = 11;
  405.     data[356] = 5;
  406.     data[357] = -43;
  407.     data[358] = 11;
  408.     data[359] = 5;
  409.     data[360] = -48;
  410.     data[361] = -6;
  411.     data[362] = 11;
  412.     data[363] = -43;
  413.     data[364] = -6;
  414.     data[365] = 11;
  415.     data[366] = -48;
  416.     data[367] = -11;
  417.     data[368] = 5;
  418.     data[369] = -43;
  419.     data[370] = -11;
  420.     data[371] = 5;
  421.     data[372] = -48;
  422.     data[373] = -1;
  423.     data[374] = 2;
  424.     data[375] = 3;
  425.     data[376] = 4;
  426.     data[377] = 5;
  427.     data[378] = 6;
  428.     data[379] = 7;
  429.     data[380] = 8;
  430.     data[381] = 1;
  431.     data[382] = -9;
  432.     data[383] = 10;
  433.     data[384] = 11;
  434.     data[385] = 12;
  435.     data[386] = 13;
  436.     data[387] = 14;
  437.     data[388] = 15;
  438.     data[389] = 16;
  439.     data[390] = 9;
  440.     data[391] = -17;
  441.     data[392] = 18;
  442.     data[393] = 19;
  443.     data[394] = 20;
  444.     data[395] = 21;
  445.     data[396] = 22;
  446.     data[397] = 23;
  447.     data[398] = 24;
  448.     data[399] = 17;
  449.     data[400] = -25;
  450.     data[401] = 26;
  451.     data[402] = 27;
  452.     data[403] = 28;
  453.     data[404] = 29;
  454.     data[405] = 30;
  455.     data[406] = 31;
  456.     data[407] = 32;
  457.     data[408] = 25;
  458.     data[409] = -33;
  459.     data[410] = 34;
  460.     data[411] = 35;
  461.     data[412] = 36;
  462.     data[413] = 37;
  463.     data[414] = 38;
  464.     data[415] = 39;
  465.     data[416] = 40;
  466.     data[417] = 33;
  467.     data[418] = -41;
  468.     data[419] = 42;
  469.     data[420] = 43;
  470.     data[421] = 44;
  471.     data[422] = 45;
  472.     data[423] = 46;
  473.     data[424] = 47;
  474.     data[425] = 48;
  475.     data[426] = 41;
  476.     data[427] = -49;
  477.     data[428] = 50;
  478.     data[429] = 51;
  479.     data[430] = 52;
  480.     data[431] = 53;
  481.     data[432] = 54;
  482.     data[433] = 55;
  483.     data[434] = 56;
  484.     data[435] = 49;
  485.     data[436] = -57;
  486.     data[437] = 58;
  487.     data[438] = 59;
  488.     data[439] = 60;
  489.     data[440] = 61;
  490.     data[441] = 62;
  491.     data[442] = 63;
  492.     data[443] = 64;
  493.     data[444] = 57;
  494.     data[445] = -65;
  495.     data[446] = 66;
  496.     data[447] = 67;
  497.     data[448] = 68;
  498.     data[449] = 69;
  499.     data[450] = 70;
  500.     data[451] = 71;
  501.     data[452] = 72;
  502.     data[453] = 65;
  503.     data[454] = -73;
  504.     data[455] = 74;
  505.     data[456] = 75;
  506.     data[457] = 76;
  507.     data[458] = 77;
  508.     data[459] = 78;
  509.     data[460] = 79;
  510.     data[461] = 80;
  511.     data[462] = 73;
  512.     data[463] = -81;
  513.     data[464] = 82;
  514.     data[465] = 83;
  515.     data[466] = 84;
  516.     data[467] = 85;
  517.     data[468] = 86;
  518.     data[469] = 87;
  519.     data[470] = 88;
  520.     data[471] = 81;
  521.     data[472] = -89;
  522.     data[473] = 90;
  523.     data[474] = 91;
  524.     data[475] = 92;
  525.     data[476] = 93;
  526.     data[477] = 94;
  527.     data[478] = 95;
  528.     data[479] = 96;
  529.     data[480] = 89;
  530.     data[481] = -97;
  531.     data[482] = 98;
  532.     data[483] = 99;
  533.     data[484] = 100;
  534.     data[485] = 101;
  535.     data[486] = 102;
  536.     data[487] = 103;
  537.     data[488] = 104;
  538.     data[489] = 97;
  539.     data[490] = -1;
  540.     data[491] = 9;
  541.     data[492] = 17;
  542.     data[493] = 25;
  543.     data[494] = 33;
  544.     data[495] = 41;
  545.     data[496] = 49;
  546.     data[497] = 57;
  547.     data[498] = 65;
  548.     data[499] = 73;
  549.     data[500] = 81;
  550.     data[501] = 89;
  551.     data[502] = 97;
  552.     data[503] = -2;
  553.     data[504] = 10;
  554.     data[505] = 18;
  555.     data[506] = 26;
  556.     data[507] = 34;
  557.     data[508] = 42;
  558.     data[509] = 50;
  559.     data[510] = 58;
  560.     data[511] = 66;
  561.     data[512] = 74;
  562.     data[513] = 82;
  563.     data[514] = 90;
  564.     data[515] = 98;
  565.     data[516] = -3;
  566.     data[517] = 11;
  567.     data[518] = 19;
  568.     data[519] = 27;
  569.     data[520] = 35;
  570.     data[521] = 43;
  571.     data[522] = 51;
  572.     data[523] = 59;
  573.     data[524] = 67;
  574.     data[525] = 75;
  575.     data[526] = 83;
  576.     data[527] = 91;
  577.     data[528] = 99;
  578.     data[529] = -4;
  579.     data[530] = 12;
  580.     data[531] = 20;
  581.     data[532] = 28;
  582.     data[533] = 36;
  583.     data[534] = 44;
  584.     data[535] = 52;
  585.     data[536] = 60;
  586.     data[537] = 68;
  587.     data[538] = 76;
  588.     data[539] = 84;
  589.     data[540] = 92;
  590.     data[541] = 100;
  591.     data[542] = -5;
  592.     data[543] = 13;
  593.     data[544] = 21;
  594.     data[545] = 29;
  595.     data[546] = 37;
  596.     data[547] = 45;
  597.     data[548] = 53;
  598.     data[549] = 61;
  599.     data[550] = 69;
  600.     data[551] = 77;
  601.     data[552] = 85;
  602.     data[553] = 93;
  603.     data[554] = 101;
  604.     data[555] = -6;
  605.     data[556] = 14;
  606.     data[557] = 22;
  607.     data[558] = 30;
  608.     data[559] = 38;
  609.     data[560] = 46;
  610.     data[561] = 54;
  611.     data[562] = 62;
  612.     data[563] = 70;
  613.     data[564] = 78;
  614.     data[565] = 86;
  615.     data[566] = 94;
  616.     data[567] = 102;
  617.     data[568] = -7;
  618.     data[569] = 15;
  619.     data[570] = 23;
  620.     data[571] = 31;
  621.     data[572] = 39;
  622.     data[573] = 47;
  623.     data[574] = 55;
  624.     data[575] = 63;
  625.     data[576] = 71;
  626.     data[577] = 79;
  627.     data[578] = 87;
  628.     data[579] = 95;
  629.     data[580] = 103;
  630.     data[581] = -8;
  631.     data[582] = 16;
  632.     data[583] = 24;
  633.     data[584] = 32;
  634.     data[585] = 40;
  635.     data[586] = 48;
  636.     data[587] = 56;
  637.     data[588] = 64;
  638.     data[589] = 72;
  639.     data[590] = 80;
  640.     data[591] = 88;
  641.     data[592] = 96;
  642.     data[593] = 104;
  643.     data[594] = -44;
  644.     data[595] = 105;
  645.     data[596] = 106;
  646.     data[597] = 107;
  647.     data[598] = 108;
  648.     data[599] = 92;
  649.     data[600] = -46;
  650.     data[601] = 109;
  651.     data[602] = 110;
  652.     data[603] = 111;
  653.     data[604] = 112;
  654.     data[605] = 94;
  655.     data[606] = -81;
  656.     data[607] = 113;
  657.     data[608] = 114;
  658.     data[609] = 115;
  659.     data[610] = 116;
  660.     data[611] = 89;
  661.     data[612] = -82;
  662.     data[613] = 117;
  663.     data[614] = 118;
  664.     data[615] = -83;
  665.     data[616] = 119;
  666.     data[617] = 120;
  667.     data[618] = -87;
  668.     data[619] = 121;
  669.     data[620] = 122;
  670.     data[621] = -88;
  671.     data[622] = 123;
  672.     data[623] = 124;
  673.     data[624] = -117;
  674.     data[625] = 119;
  675.     data[626] = -121;
  676.     data[627] = 123;
  677.     data[628] = -118;
  678.     data[629] = 120;
  679.     data[630] = -122;
  680.     data[631] = 124;
  681. }
  682.  
  683. void muck1 ()
  684. {
  685.     CH = cos (H);
  686.     SH = sin (H);
  687.     CP = cos (P);
  688.     SP = sin (P);
  689.     CB = cos (B);
  690.     SB = sin (B);
  691.     AM = CB * CH - SH * SP * SB;
  692.     BM = -CB * SH - SP * CH * SB;
  693.     CM = CP * SB;
  694.     DM = SH * CP;
  695.     EM = CP * CH;
  696.     FM = SP;
  697.     GM = -CH * SB - SH * SP * CB;
  698.     HM = SH * SB - SP * CH * CB;
  699.     IM = CP * CB;
  700. }
  701.  
  702. void muck2 ()
  703. {
  704.     X  = X - XV;
  705.     Y  = Y - YV;
  706.     Z  = Z - ZV;
  707.     X3 = AM * X + BM * Y + CM * Z;
  708.     Y3 = DM * X + EM * Y + FM * Z;
  709.     Z3 = GM * X + HM * Y + IM * Z;
  710.     U  = 135 + 13.5 * D * X3 / Y3;    //• Shuttle width.
  711.     Vc = 80 - 12.5 * D * Z3 / Y3;    //• Shuttle length.
  712. }
  713.  
  714. void muck3 ()
  715. {
  716.     short    Ec;
  717.  
  718.     X  = 0;
  719.     Y  = 0;
  720.     Z  = 0;
  721.     X3 = 0;
  722.     Y3 = 0;
  723.     Z3 = 0;
  724.     AM = 0;
  725.     BM = 0;
  726.     CM = 0;
  727.     DM = 0;
  728.     EM = 0;
  729.     FM = 0;
  730.     GM = 0;
  731.     HM = 0;
  732.     IM = 0;
  733.     D  = 0;
  734.     P  = 0;
  735.     B  = 0;
  736.     H  = 0;
  737.     U  = 0;
  738.     Vc = 0;
  739.     U1 = 0;
  740.     V1 = 0;
  741.     D  = 120;
  742.     P  = 6.28 * oxangle / 255 - 3.1416;    //• Remove "- 3.1416" to start
  743.     B  = 6.28 * ozangle / 255;            //• with nose-up view.
  744.     H  = 6.28 * oyangle / 255;
  745.  
  746.     muck1 ();
  747.     XV = - D * CP * SH;
  748.     YV = - D * CP * CH;
  749.     ZV = - D * SP;
  750.     for (Ec = 0; Ec < maxe; Ec++)        //• Starting point.
  751.     {
  752.         X = V [abs (ceil (E [Ec]))] [0];
  753.         Y = V [abs (ceil (E [Ec]))] [1];
  754.         Z = V [abs (ceil (E [Ec]))] [2];
  755.  
  756.         muck2 ();
  757.  
  758.         if (E [Ec] > 0)
  759.         {
  760.             MoveTo (ceil (U1 * 2 + 75), ceil (V1 + 20));
  761.             LineTo (ceil (U  * 2 + 75), ceil (Vc + 20));
  762.         }
  763.         U1 = U;
  764.         V1 = Vc;
  765.     }
  766. }
  767.  
  768. void winit (WindowPtr *w)
  769. {
  770.     w = GetNewWindow (r1, nil, (WindowPtr)-1L);
  771.     ShowWindow (w);
  772.     SetPort (w);
  773.     MoveTo (50, 240);
  774.     TextSize (18);
  775.     TextFace (shadow);
  776.     DrawString ("\pEddy's Shuttle Viewer");
  777.     MoveTo (50, 260);
  778.     TextSize (12);
  779.     TextFace (bold);
  780.     DrawString ("\pClick and hold button down to STOP");
  781.     MoveTo (50, 280);
  782.     TextSize (10);
  783.     TextFace (italic);
  784.     DrawString ("\pThinkPas Code by Eddy Vasile. Plot Points from anonymous source");
  785.     MoveTo (200, 170);
  786.     TextSize (10);
  787.     DrawString ("\pWait for a couple of views before clicking");
  788.     Delay (100, &ticks);
  789. }
  790.  
  791. void initvars ()
  792. {
  793.     short position, j, Ec, Pc;
  794.  
  795.     position = 0;
  796.     for (Pc = 1; Pc <= maxv; Pc++)
  797.     {
  798.         for (j = 0; j < 3; j++)
  799.         {
  800.             position = position + 1;
  801.             V [Pc] [j] = data [position] * 0.12;     //• This number controls
  802.         }                                            //• scale.  Try .2
  803.     }
  804.     for (Ec = 0; Ec < maxe; Ec++)
  805.     {
  806.         position = position + 1;
  807.         E [Ec] = data [position];
  808.     }
  809. }
  810.  
  811. void mainloop ()
  812. {
  813.     Rect shuttleRect;
  814.  
  815.     SetRect (&shuttleRect, 180, 0, 500, 200);
  816.     while (! Button ())
  817.     {
  818.         FillRect (&shuttleRect, white);
  819.         muck3 ();
  820.         Delay (150, &ticks);
  821.         oxangle = oxangle + 10;
  822.         oyangle = oyangle + 10;
  823.         ozangle = ozangle + 10;
  824.     }
  825. }
  826.  
  827. main ()
  828. {
  829.     setdataarray ();
  830.     initvars ();
  831.     winit (w);
  832.     mainloop ();
  833. }